Busy web sites often use hundreds or thousands of machines to form a large-scale cluster to respond quickly to highly concurrent user requests. Such a cluster is typically configured with multiple network switches in a hierarchical structure. FIG. 1 is a block diagram illustrating an example of a conventional network topology in a service cluster. In communications networks, a topology is usually a schematic description of the arrangement of a network, including its nodes and connecting lines, also defined as a physical topology and/or a logical topology. Referring to FIG. 1, the cluster 100 typically includes computer nodes 102-105 connected to access switches 106-109, which are connected to switches in the next levels. These switches 106-109 in turn are connected to another switch.
The hierarchical topology is needed partially because of the physical limitations of switches. Typically, each switch includes a limited number of ports (e.g., uplink and downlink ports) and can only connect a limited number of machines with 1000 Mb or 100 Mb ports. The physical location of switches also requires a hierarchical topology. For example, a hosting center leases cages of space to a company, similar to cage 101 of FIG. 1. Each cage (e.g., cage 101) can only host a limited number of machines (e.g., nodes 102-105) and the entire cluster (e.g., cluster 100) needs to connect multiple non-adjacent cages. The bandwidth among links in the network also varies. For example, the bandwidth across switches is limited by the uplink of each switch. The bandwidth across switches in different cages may be lower than that inside a cage.